home *** CD-ROM | disk | FTP | other *** search
- #########################################################################
- # BUILT-IN DYNAMICAL SYSTEMS
- #########################################################################
-
- Lookup README file in ${KAOSHOME}/modellib directory for more
- information on how many vector fields and maps are defined.
-
- The files starting with "generic_" are
- those with examples of many different generic dynamical systems,
- which can be copied to the user directory ${KAOSHOME}/modellib
- and used as a template for entering your own dynamical system.
- Choosing the right example from the list will reduce the amount of
- time required to enter your own dynamical system.
-
- For more detailed info, look up the generic_def.c file and
-
- #########################################################################
- # DESCRIPTION OF BUILT-IN DYNAMICAL SYSTEMS
- #########################################################################
-
- Look up the file ending with .info
- to get a description of a given dynamical system.
-
- #########################################################################
- # BUILDING NEW DYNAMICAL SYSTEM CLASS
- #########################################################################
-
- You must have a write permission for some kaos files to change
- parameters of the dynamical system class or build a new one.
- Therefore, this customization requires that you have a private
- copy of the entire source code of kaos in your local directory
- or you have a super-user privilege.
-
- It if often convenient to define a set of dynamical system classes with
- conveniently grouped dynamical systems. For example, one can define a
- set of dynamical system classes depending on whether dynamical systems
- are mappings or vector fields, whether they are Hamiltonian or not, and
- whether they are from tutorial examples or from research projects,
- etc. With fewer models installed at once, the program is smaller and
- runs faster. Each dynamical system is defined by a small set of
- subroutines. These subroutine modules can be inserted into and deleted
- from a given dynamical system class. The Makefile in the directory
- ${KAOSHOME}/modellib contains most of the instructions for installing
- dynamical system classes.
-
- At the moment, the maximal dimensions of the phase, parameter, and function
- space for a given dynamical system classes are specified in the file
- Makefile in the directory $KAOSPATH/modellib. These can
- be easily changed by editing a line containing these definitions. Though
- this is much easier operation than what follows
- class, for the sake of completeness we present how to install
- the new dynamical system class in the following.
-
- For example, in order to create and install a new class
- with the class name class_trial, follow the steps described below.
-
- (1) Create the file class_trial_model_labels.h with the title of
- a member dynamical system in each line. For example, the file should look like
-
- Lorenz system
- KO torus map
- Henon map
-
- (2) Go to the file Makefile in the directory ${KAOSHOME}/modellib.
- Define the a new environmental variable CLASS_TRIAL as follows
-
- CLASS_TRIAL = \
- lorenz kotorusmap \\
- henonmap
-
- (3) Copy the set of commands for making the target class_demo
- in Makefile and change the name of the target to class_trial.
- For example,
-
- class_trial:\\
- kwrite_init $@ 3 $CLASS_USER $CLASS_TRIAL\\
- kwrite_def $@ 12 13 5 3 $CLASS_USER $CLASS_TRIAL\\
- kwrite_model $@ $CLASS_USER $CLASS_TRIAL\\
- kwrite_f $@ $CLASS_TRIAL\\
- cp $@_kaos_init.h class_kaos_init.h\\
- cp $@_kaos_def.h class_kaos_def.h\\
- cp $@_kaos_model.h class_kaos_model.h\\
- cp $@_choose_algorithm.c class_choose_algorithm.c\\
- Here, $CLASS_USER is an environmental variable for a list of
- user defined dynamical systems, that is,
- userds0 userds1 userds2
-
- The second argument of the command
- kwrite_init (here 3) denotes the index of the
- dynamical system class. Change this to a number that differs from
- the indices of the other dynamical system classes.
-
- The numerical arguments of the command
- kwrite_def (here 12 13 5 3) denote
- the maximal dimensions of the phase space, the parameter space, the function
- space, and the number of auxiliary windows, respectively. Edit these for the
- proper dimensions of the dynamical system class
- to be installed in class_trial.
- Note that changing the values of these arguments for the existing dynamical
- system class will change the corresponding maximal dimension of the spaces.
-
- (4) In the directory ${KAOSHOME}/modellib,
- type make class_trial to create the new dynamical system class.
- This creates a set of temporary files looked up by kaos;
- class_trial_kaos_def.h, class_trial_kaos_init.h,
- class_trial_kaos_model.h, and
- class_def.c.
-
- Some constants in the temporary files which are
- automatically created by "make" and are explained below.
-
- File class_trial_kaos_def.h
- ---------------------------
- MODEL_DIM - the number of dynamical systems in the class
-
- MODEL_LABELS - a set of labels for the dynamical systems in the class
-
- dsclass variable - the index for a user dynamical system class
-
- File class_trial_kaos_init.h
- ---------------------------
- init_tbl - a list of dynamical systems
- contained in a user dynamical system class.
- Substitute the existing ones with names of the
- dynamical systems in your user dynamical system class. The number and order of entries are important. The total number of entries should be MODEL_DIM
- as defined in class_trial_kaos_def.h.
-
- *_init(),*_f(),*_func() - their names need to be changed to the names
- of the dynamical systems in your user dynamical system class. Note
- that all these subroutines have to be declared to return an integer.
-